package cn.sofwin.day0116;

public class Test02 {
    public static void main(String[] args) {
        int[][] a = new int[][]{{1, 2, 3, 4},{9, 8, 10}};
        display(a);
        swap(a, 0, 1, 1, 1);
        display(a);
        System.out.println("AVG=" + getAvg(a));
        System.out.println("MIN=" + getMin(a));
        System.out.println("MAX=" + getMax(a));
    }

    /**
     * 交换二维数组中的两个元素
     */
    static void swap(int[][] array, int i0, int j0, int i1, int j1){
        int temp = array[i0][j0];
        array[i0][j0] = array[i1][j1];
        array[i1][j1] = temp;
    }

    /**
     * 求二维数组中的平均数
     */
    static int getAvg(int[][] array){
        int sum = 0, n = 0;
        for (int[] i : array){
            for (int j : i){
                sum += j;
                n++;
            }
        }
        return sum / n;
    }

    /**
     * 求二维数组中的最小数
     */
    static int getMin(int[][] array){
        int min = array[0][0];
        for (int[] i : array){
            for (int j : i){
                min = min > j ? j : min;
            }
        }
        return min;
    }

    /**
     * 求二维数组中的最大数
     */
    static int getMax(int[][] array){
        int max = 0;
        for (int[] i : array){
            for (int j : i){
                max = max < j ? j : max;
            }
        }
        return max;
    }

    /**
     * 打印二维数组
     */
    static void display(int[][] array){
        for (int i = 0; i < array.length; i++){
            for (int j = 0; j < array[i].length; j++){
                System.out.printf("%-2d", array[i][j]);
                if (j < array[i].length){
                    System.out.print(" ");
                }
            }
            System.out.println();
        }
    }
}
